class Solution {
//    给定 s 和 t 两个字符串，当它们分别被输入到空白的文本编辑器后，如果两者相等，返回 true 。# 代表退格字符。
//    注意：如果对空文本输入退格字符，文本继续为空。
//    示例 1：
//
//    输入：s = "ab#c", t = "ad#c"
//    输出：true
//    解释：s 和 t 都会变成 "ac"。
//    示例 2：
//
//    输入：s = "ab##", t = "c#d#"
//    输出：true
//    解释：s 和 t 都会变成 ""。
//    示例 3：
//
//    输入：s = "a#c", t = "b"
//    输出：false
//    解释：s 会变成 "c"，但 t 仍然是 "b"。
//    提示：
//
//            1 <= s.length, t.length <= 200
//    s 和 t 只含有小写字母以及字符 '#'
    public boolean backspaceCompare(String s, String t) {
        int lenS = s.length();
        int lenT = t.length();
        char[] arrS = new char[lenS + 1];
        char[] arrT = new char[lenT + 1];
        int indexS = edit(s, arrS);
        int indexT = edit(t, arrT);
        if(indexS != indexT){
            return false;
        }
        for(int i = 1; i <= indexS; i++){
            if(arrS[i] != arrT[i]){
                return false;
            }
        }
        return true;
    }
    private int edit(String s, char[] arr){
        int len = s.length();
        int index = 0;
        for(int i = 0; i < len; i++){
            char ch = s.charAt(i);
            if(ch != '#'){
                arr[index + 1] = ch;
                index++;
            }else{
                if(index > 0){
                    index--;
                }
            }
        }
        return index;
    }
}